草庐IT

Java RMI 跟踪

全部标签

linux - 最小核心转储(堆栈跟踪+仅限当前帧)

我可以在Linux上配置进入核心转储的内容吗?我想获得类似Windows小型转储的信息(应用程序崩溃时有关堆栈帧的最少信息)。我知道您可以使用ulimit为核心文件设置最大大小,但这不允许我控制核心内部的内容(即不能保证如果我将限制设置为64kb它例如,将转储堆栈的最后16页)。此外,如果可能的话,我想以编程方式(通过代码)设置它。我查看了mancore提到的/proc/PID/coredump_filter文件,但对于我的目的来说它似乎过于粗糙。提供一些背景信息:出于多种原因,我需要微型核心文件:我需要通过网络为众多(数千)客户收集它们;此外,这些是带有少量SD卡的嵌入式设备,以及用

linux - 最小核心转储(堆栈跟踪+仅限当前帧)

我可以在Linux上配置进入核心转储的内容吗?我想获得类似Windows小型转储的信息(应用程序崩溃时有关堆栈帧的最少信息)。我知道您可以使用ulimit为核心文件设置最大大小,但这不允许我控制核心内部的内容(即不能保证如果我将限制设置为64kb它例如,将转储堆栈的最后16页)。此外,如果可能的话,我想以编程方式(通过代码)设置它。我查看了mancore提到的/proc/PID/coredump_filter文件,但对于我的目的来说它似乎过于粗糙。提供一些背景信息:出于多种原因,我需要微型核心文件:我需要通过网络为众多(数千)客户收集它们;此外,这些是带有少量SD卡的嵌入式设备,以及用

c - 进程终止后如何查看堆栈跟踪?

我正在使用gdb命令“附加”来调试进程但是在进程崩溃(sigkill)之后我看不到堆栈跟踪(gdb中的“bt”命令):(gdb)BT没有堆栈。进程终止后如何查看堆栈跟踪? 最佳答案 通过确保ulimit-c不显示核心大小为0,将您的shell设置为转储核心。如果显示为0,则运行ulimit-cunlimited.接下来,重新运行您的程序,直到它崩溃并转储核心,然后调用:gdb/path/to/executable/path/to/core并键入bt以获取堆栈跟踪。此外,您还需要在打开调试信息的情况下编译可执行文件。如果您使用的是gc

c - 进程终止后如何查看堆栈跟踪?

我正在使用gdb命令“附加”来调试进程但是在进程崩溃(sigkill)之后我看不到堆栈跟踪(gdb中的“bt”命令):(gdb)BT没有堆栈。进程终止后如何查看堆栈跟踪? 最佳答案 通过确保ulimit-c不显示核心大小为0,将您的shell设置为转储核心。如果显示为0,则运行ulimit-cunlimited.接下来,重新运行您的程序,直到它崩溃并转储核心,然后调用:gdb/path/to/executable/path/to/core并键入bt以获取堆栈跟踪。此外,您还需要在打开调试信息的情况下编译可执行文件。如果您使用的是gc

linux - 在 Unix 系统上自动获取堆栈跟踪

在Unix系统上有哪些自动获取堆栈跟踪的方法?我的意思不是仅仅获取核心文件或与GDB交互附加,而是拥有一个SIGSEGV处理程序将回溯转储到文本文件。以下可选功能的奖励积分:在崩溃时收集额外信息(例如配置文件)。通过电子邮件将崩溃信息包发送给开发人员。能够将其添加到dlopened共享库中不需要GUI 最佳答案 仅供引用,建议的解决方案(在信号处理程序中使用backtrace_symbols)有被破坏的危险。不要使用它-是的,backtrace和backtrace_symbols会生成回溯并将其转换为符号名称,但是:backtrac

linux - 在 Unix 系统上自动获取堆栈跟踪

在Unix系统上有哪些自动获取堆栈跟踪的方法?我的意思不是仅仅获取核心文件或与GDB交互附加,而是拥有一个SIGSEGV处理程序将回溯转储到文本文件。以下可选功能的奖励积分:在崩溃时收集额外信息(例如配置文件)。通过电子邮件将崩溃信息包发送给开发人员。能够将其添加到dlopened共享库中不需要GUI 最佳答案 仅供引用,建议的解决方案(在信号处理程序中使用backtrace_symbols)有被破坏的危险。不要使用它-是的,backtrace和backtrace_symbols会生成回溯并将其转换为符号名称,但是:backtrac

c++ - 在 GCC 上的 GTEST 中测试失败时是否有打印堆栈跟踪的选项?

我在Linux上将GTEST与GCC结合使用。我想看到在测试失败时打印的堆栈跟踪(无论是断言还是基于信号的崩溃)。可以做到manually,但我想知道它是否可以设置为GTEST构建/运行选项(无需对我的代码库进行多行修改)? 最佳答案 没有“完全”记录的选项:--gtest_stack_trace_depth=10(10只是示例值)。必须与--gmock_verbose=info一起使用是的-它适用于失败的EXPECT_CALL-仅在gmock中。对于断言(如ASSERT_EQ),它的意义不大-因为ASSERT就在它所在的位置-它的

c++ - 在 GCC 上的 GTEST 中测试失败时是否有打印堆栈跟踪的选项?

我在Linux上将GTEST与GCC结合使用。我想看到在测试失败时打印的堆栈跟踪(无论是断言还是基于信号的崩溃)。可以做到manually,但我想知道它是否可以设置为GTEST构建/运行选项(无需对我的代码库进行多行修改)? 最佳答案 没有“完全”记录的选项:--gtest_stack_trace_depth=10(10只是示例值)。必须与--gmock_verbose=info一起使用是的-它适用于失败的EXPECT_CALL-仅在gmock中。对于断言(如ASSERT_EQ),它的意义不大-因为ASSERT就在它所在的位置-它的

linux - 无法跟踪 sudo;报告有效 uid 为非零

命令:bigxu@bigxu-ThinkPad-T410~/work/lean$sudolscontent_shell.pakleanotelibgcrypt.so.11libnotify.so.4__MACOSXresourcesicudtl.datleanote.pnglibnode.solocalesnatives_blob.binsnapshot_blob.bin大多数时候是正确的。但有时它很慢。所以我跟踪它。命令:bigxu@bigxu-ThinkPad-T410~/work/lean$stracesudolsexecve("/usr/bin/sudo",["sudo","l

linux - 无法跟踪 sudo;报告有效 uid 为非零

命令:bigxu@bigxu-ThinkPad-T410~/work/lean$sudolscontent_shell.pakleanotelibgcrypt.so.11libnotify.so.4__MACOSXresourcesicudtl.datleanote.pnglibnode.solocalesnatives_blob.binsnapshot_blob.bin大多数时候是正确的。但有时它很慢。所以我跟踪它。命令:bigxu@bigxu-ThinkPad-T410~/work/lean$stracesudolsexecve("/usr/bin/sudo",["sudo","l